#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：18.利用闭包的特性完成代码复用.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-10-25 16:29
'''
# def wrapper(fun_obj):
#     print(f"我被执行了，被调用的函数名为：{fun_obj.__name__}")
#     def in_func(*args, **kwargs):
#         fun_obj(*args, **kwargs)
#     return in_func
#
#
# @wrapper
# def work1(name, gender):
#     print(name, gender)
#
# work1("安娜", "女")



def wrapper1(fun_obj):
    print(f"我被执行了，被调用的函数名为1：{fun_obj.__name__}")
    def in_func(*args, **kwargs):
        print("装饰器方法被调用了")
        fun_obj(*args, **kwargs)
    return in_func


def work2(name, gender):
    print(name, gender)
    pass

"""
    1.wrapper1(work2)：相当于将work2的函数地址传递给了wrapper函数
    2.wrapper返回了内部函数的地址：in_func
    3.调用in_func会在这个函数的内部运行接收到的函数
"""
func_obj = wrapper1(work2)
func_obj("双双", "女")


class Student:

    @staticmethod
    def print_info(self):
        pass
